|
COLA stands for Combined Object Lambda Architecture, and is a system for experimenting with software design currently being investigated by the Viewpoints Research Institute.〔(【引用サイトリンク】title= Viewpoints Research Institute software page )〕 A COLA is a self-describing language in two parts, an object system which is implemented in terms of objects, and a functional language to describe the computation to perform.〔(【引用サイトリンク】title= Accessible Language-Based Environments of Recursive Theories (a white paper advocating widespread unreasonable behavior) )〕 Since a COLA is written in itself, the whole environment (when bootstrapped) can be rewritten and extended by programming with the COLA; in other words, it does not require more knowledge to rewrite a COLA than it does to write a program to run in it (as opposed to running Python code in CPython for example, which requires knowledge of C in order to reprogram the language). This flexibility has led to the work-in-progress COLA called 'idst'〔(【引用サイトリンク】title= idst homepage )〕 becoming the implementation vehicle of choice for the Viewpoints Research Institute's research into 'reinventing programming', since it allows rapid creation and modification of new programming languages for study.〔(【引用サイトリンク】title= Experimenting with programming languages )〕 == Description == A COLA is designed to be the simplest possible language which can be described in itself, so that the implementation exactly describes itself. In order to do this the structure of the environment is separated from the semantics of the computation performed. The object system describes the structure of a prototype-based Object Oriented environment.〔(【引用サイトリンク】title= Pepsi's object system )〕 This is implemented in terms of objects and message passing, which is in fact the same system it is describing. This allows modification of the system by using the same object oriented knowledge used to write any other application. This object system is turned into a useful programming language by complementing it with a functional language describing what each object's methods do. The methods called from the object language are closures running a functional programming language. Combined together, these two parts form a complete prototype-based Object Oriented programming language which is entirely self-hosting. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「COLA (software architecture)」の詳細全文を読む スポンサード リンク
|